// compito_liste.cpp : Defines the entry point for the console application.
//
/*
scrivere un programma che crea una lista di alunni ogni alunno ha cognome nome e dall aray dei voti il programma permette di inserire 5 alunni
(nodi) menù inserimeno visualizzazione
*/

#include "stdafx.h"
#include <iostream>

#define LEN 20
#define N 5
using namespace std;

typedef struct {
	char cognome[LEN + 1];
	char nome[LEN + 1];
	float votoc = 0;
}ALUNNO;
typedef struct NODO {
	ALUNNO alunno;
	struct NODO *next;
}NODO;

void stampa(NODO *nq1);
void carica(NODO n[]);
NODO* new_nod();
void menù();

void menù() {
	
	NODO *tot[N];
	int scelta = 0;
	for (int i = 0; i < N; i++) {
		tot[i] = new_nod();
	}
	do {
		system("cls");
		printf("menù\n");
		printf("0.esci");
		printf("1.inserisci\n");
		printf("2.visualizza\n");
		scanf_s("%d", &scelta, sizeof(int));
		switch (scelta) {
		case 0:
			printf("arriverdci e lasciate la mancia\n");
			system("pause");
			break;
		case 1:
			carica(*tot);
			break;
		case 2:
			stampa(*tot);
			break;




		}

	} while (scelta != 0);



	//dealloco
	for (int i = 5; i > N; i--) {
		if (i < 5) {
			tot[i]->next = NULL;
		}
		free(tot[i]);
		
	}


}
int main()
{
	
	menù();
	system("pause");
	return 0;
}
void stampa(NODO *nq1) {
	for (int i = 0; i < N; i++) {
		printf("Nodo di testa:\n %s\n%s\n%f\n", nq1[i].alunno.cognome, nq1[i].alunno.nome, nq1[i].alunno.votoc);
	}
}

void carica(NODO n[]) {

	for (int i = 0; i < N; i++) {
		printf("inserire cognome\n");
		scanf_s("%s", n[i].alunno.cognome, LEN + 1);
		printf("inserire nome \n");
		scanf_s("%s", n[i].alunno.nome, LEN + 1);
		n[i].alunno.votoc = 7;
		if (i != 5) {
			*n[i].next = n[i + 1];
		}


	}
}
NODO* new_nod() {
	NODO*g = NULL;
	g = (NODO*)malloc(sizeof(NODO));
	if (g == NULL) {
		printf("ERRORE!!!");
		return 0;
	}
	return g;
}